#ifndef __MAIN_H__
#define __MAIN_H__
/**
 *  @file  main.h
 *  @brief main FDs parameters
 *
 */

/*
//|----------------------------------------------------------------------------
//|                 SKY NETWORKS CONFIDENTIAL - COPYRIGHT 2016
//|----------------------------------------------------------------------------
//| The information contained herein is the property of Sky Networks and is
//| strictly confidential. Except as expressly authorized in writing by Sky
//| Networks, the holder shall keep all information contained herein confiden-
//| tial, shall disclose it only to its employees with a need to know, and
//| shall protect it, in whole or in part, from disclosure and dissemination
//| to third parties with the same degree of care it uses to protect its own
//| confidential information of like nature, but with no less than reasonable
//| care. Except expressly authorized in writing by Sky Networks, the holder
//| is granted no rights to use the information contained herein.
//|----------------------------------------------------------------------------
*/

/** Default value */
#define MAIN_PARAM_SCHED_DEF       "OTHER" /**< Default scheduling        */
#define MAIN_PARAM_PRIO_MAX_DEF    0       /**< Default maximum priority  */
#define MAIN_PARAM_PRIO_MIN_DEF    0       /**< Default minimum priority  */

#define MAIN_ARG_VERBOSE        "verbose"   /**< Be verbose                 */
#define MAIN_ARG_VERBOSE_KEY    'v'         /**< Be verbose - key           */

#define MAIN_ARG_TIMESTAMP      "timestamp" /**< Timestamp messages         */
#define MAIN_ARG_TIMESTAMP_KEY  't'         /**< Timestamp messages - key   */

#define MAIN_ARG_SCHEDULING     "sched"     /**< Scheduling                 */
#define MAIN_ARG_SCHEDULING_KEY 's'         /**< Scheduling - key           */

#define MAIN_ARG_PRIO_MAX       "maxp"      /**< Maximum priority (highest) */
#define MAIN_ARG_PRIO_MAX_KEY    0x100      /**< Maximum priority - key     */

#define MAIN_ARG_PRIO_MIN       "minp"      /**< Minimum priority (lowest)  */
#define MAIN_ARG_PRIO_MIN_KEY    0x101      /**< Minimum priority - key     */

#define MAIN_ARG_FD             "fd"        /**< Fd socket path             */
#define MAIN_ARG_FD_KEY          0x203      /**< Fd socket path - key       */

#define MAIN_ARG_PORT            "port"     /**< Remote socket port         */
#define MAIN_ARG_PORT_KEY        'p'        /**< Remote socket port - key   */

#define MAIN_ARG_HOST            "host"     /**< Remote socket host         */
#define MAIN_ARG_HOST_KEY        'h'        /**< Remote socket host - key   */

#define MAIN_ARG_USER_FIRST_KEY  0x1000     /**< First user key */

#define MAIN_ARGP_OPTIONS \
  {MAIN_ARG_VERBOSE,    MAIN_ARG_VERBOSE_KEY,    0,              0, \
  "Verbose",                  0 },\
  {MAIN_ARG_TIMESTAMP,  MAIN_ARG_TIMESTAMP_KEY,  0,\
   0, "Timestamp message",    0 },\
  {MAIN_ARG_SCHEDULING, MAIN_ARG_SCHEDULING_KEY, "SCHEDULING",   0, \
   "Scheduling (OTHER, FIFO,RR)",        0 },\
  {MAIN_ARG_PRIO_MAX,   MAIN_ARG_PRIO_MAX_KEY,   "MAX_PRIORITY", 0, \
   "Maximum priority",        0 },\
  {MAIN_ARG_PRIO_MIN,   MAIN_ARG_PRIO_MIN_KEY,   "MIN_PRIORITY", 0, \
   "Minimum priority",        0 },\
  {MAIN_ARG_FD,         MAIN_ARG_FD_KEY,         "FD_PATH",      0, \
   "FD socket path",          0 },\
  {MAIN_ARG_PORT,       MAIN_ARG_PORT_KEY,       "PORT",         0, \
   "Remote port",             0 },\
  {MAIN_ARG_HOST,       MAIN_ARG_HOST_KEY,       "HOST",         0, \
   "Remote host",             0 }

#endif /* __MAIN_H__ */
